package br.com.designless.business.facade;

import br.com.designless.business.model.Jogos;
import br.com.designless.business.model.Locais;
import br.com.designless.business.model.TiposUsuario;
import br.com.designless.business.model.Usuarios;
import br.com.designless.exception.UsuarioExistenteException;
import br.com.designless.exception.UsuarioNaoEncontradoException;
import java.util.List;
import javax.ejb.Remote;

/**
 *
 * @author diogenes.feijo
 */
@Remote
public interface FutibaManagerFacadeRemote {

    public static final String JNDI_NAME = "br.com.designless.business.facade.FutibaManagerFacadeRemote";

    Usuarios cadastrarUsuario(Usuarios usuario) throws UsuarioExistenteException;

    TiposUsuario cadastrarTipoUsuario(TiposUsuario tipoUsuario);

    Usuarios buscarUsuario(String login, String senha) throws UsuarioNaoEncontradoException;

    Usuarios buscarUsuario(String login) throws UsuarioNaoEncontradoException;

    List<Usuarios> buscarUsuarios();

    void enviarEmailCadastroUsuario(Usuarios usuario);

    void enviarEmailConfirmacaoParticipacaoJogo(Usuarios usuario, Jogos jogo);

    void enviarEmailConviteParticipacaoJogo(String[] emailsConvidados, Jogos jogo);

    void recuperarDadosCadastraisUsuario(String email) throws UsuarioNaoEncontradoException;

    Jogos cadastrarJogo(Jogos jogo);

    void excluirJogo(Jogos jogo);

    List<Jogos> buscarJogos();

    List<Jogos> buscarJogosAtuais();

    List<Jogos> buscarJogosHistorico();

    Jogos buscarJogo(Integer id);

    Locais cadastrarLocal(Locais local);

    void excluirLocal(Locais local);

    List<Locais> buscarLocais();

    Locais buscarLocal(Integer id);

}